package org.example;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

public class File_Demo1 {
    public static void main(String[] args) {
       //1.listRoots  获取系统所有的根目录
       File[] files=File.listRoots();
       for (File file : files) {
           System.out.println(file);
       }
        System.out.println("----------------");
       //2.list() 获取目录下的所有内容 不包含隐藏文件 仅仅获取名字
       File file=new File("D:\\Idea_xiangmu\\IdeaProjects\\Two_test");
       String[] list=file.list();
       for (String s : list) {
           System.out.println(s);
       }
        System.out.println("----------------");
       //3.list(FilternameFilter filter)利用文件名过滤 获取指定目录下的所有.java文件
       File file1=new File("D:\\Idea_xiangmu\\IdeaProjects\\" +
               "Two_test\\src\\main\\java\\org\\example");
       File[] arr=file1.listFiles(new FilenameFilter() {
           @Override//accept方法形参一次表示该文件夹里面每一个文件或者文件夹路径
           //dir 表示当前目录  父级目录
           //name 表示当前目录下的每一个文件或者文件夹的名称  子级目录
           //返回值 表示是否保留  true 保留 false 不保留
           public boolean accept(File dir, String name) {
               File src=new File(dir,name);
               return src.isFile()&&name.endsWith(".java");
           }
       });
      System.out.println(Arrays.toString(arr));
      for (File file2 : arr) {
          if (file2.isFile()&&file2.getName().endsWith(".java")) {
              System.out.println(file2);
          }
      }
        System.out.println("---------------");
       //File[] listFiles()  获取目录下的所有文件 包含隐藏文件
        File[] arr1=file1.listFiles();
        for (File file3 : arr1) {
            if (file3.isFile()&&file3.getName().endsWith(".java")) {
                System.out.println(file3);
            }
        }
    }
}
